草庐IT

c++ - 有效指针的含义

全部标签

go - 如何检测 Go 中的有效 URL?

在我使用其余API向它发送请求之前,我想在我的程序中输入它时尝试检查有效的url。我在go中使用了regexp包。以下是我的正则表达式:urlRegex:="^(https?://)[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"我使用regexp.MatchString()方法将它与我的输入匹配。match,_:=regexp.MatchString(urlRegex,args[0])然而,这为我提供了一个有效的url,适用于http:////:9000或http://a.go中是否有任何我可以导入的包以进行更强大的url检查?

macos - 删除了 golang 但 go 命令仍然有效?

我正在运行MacOSXYosemite。我正在尝试从golang1.4更新到golang1.6。我卸载了golang,但我注意到我仍然可以运行go命令goversion=go1.4.2darwin/amd64。为什么会这样?IMO的指示不是很清楚。他们说删除现有的Go安装这通常是/usr/local/go(完成)删除etc/paths.d/go我通过运行goversiongo1.4.2darwin/amd64编辑了bash 最佳答案 我遇到了同样的问题。我最终得到了这个解决方案:cd/usr/local/binrmgo删除“go”命

image - 在 Go 中传递响应主体 (response.Body) 的有效方法是什么?

如果我有一些代码(如下例)从链接中获取图像,然后将其保存到磁盘,传递图像数据的最佳方式是什么?我考虑过使用ioutil.ReadAll(res.Body)将其转换为[]byte但传递它似乎很昂贵,虽然我无法分辨文档是否返回slice或数组。我还尝试返回一个指向res.Body的指针,一个*io.ReadCloser类型,但我不知道如何正确调用.Close()指向接口(interface)上的方法。我知道将保存代码移动到FetchImage函数中可能是解决此问题的最简单方法,但我希望尽可能将这些部分分开。typeImageDatastruct{Dataio.ReadCloserNames

go - 为什么 http 处理程序的参数似乎有他们的指针向后?

这个问题在这里已经有了答案:InGoHTTPhandlers,whyistheResponseWriteravaluebuttheRequestapointer?(5个答案)关闭6年前。我是新手,仍在尝试弄清楚一些事情。funchandler(whttp.ResponseWriter,r*http.Request){}为什么w不是指针而另一方面r是指针,因为处理函数最终将写入w并且只从r读取?

pointers - 初始化方法中返回指针和值的区别

这个问题在这里已经有了答案:Pointersvs.valuesinparametersandreturnvalues(5个答案)关闭3年前。考虑以下结构:typeQueuestruct{Elements[]int}有什么不同:funcNewQueue()Queue{queue:=Queue{}returnqueue}和funcNewQueue()*Queue{queue:=&Queue{}returnqueue}对我来说,这看起来几乎是一样的(事实上,尝试一些入队和出队会产生相同的结果)但我仍然看到这两种用法在野外,所以也许一个更好。

pointers - 为什么指针上的方法在指针是变量时起作用,而在其他情况下不起作用?

运行以下代码时:packagemainimport("fmt")typeBarstruct{namestring}func(fooBar)testFunc(){fmt.Println(foo.name)}funcdoTest(pointer*Bar){pointer.testFunc()//run`testFunc`onthepointer(eventhoughitexpectsavalueoftype`Bar`,not`*Bar`)}funcmain(){varbazBar=Bar{name:"JohnnyAppleseed",}doTest(&baz)//sendapointero

pointers - 实现一个返回指针的函数

我已经在我的golang应用程序中实现了syslog守护进程服务。我在主包中使用了syslog.New,它可以工作,但现在,我想将它导出到另一个包。packageconfigimport("log/syslog")funcLogBook()?{sysLog,_:=syslog.New(syslog.LOG_LOCAL0|syslog.LOG_ERROR,"myapp")//syslog.Newreturns(*Writer,error)return?}如何实现这个功能?之后,如何在其他包中使用这个变量“sysLog”?谢谢! 最佳答案

testing - 如何测试go中函数的返回值是指向类型的指针?

我在测试用例中突出显示了我希望某些东西应该去的地方。理想情况下,我想测试i是WHAT_SHOULD_I_PUT_HERE的一个实例主.gopackagemainimport"fmt"typeSomeTypestruct{thingThatNeedsSetupstruct{}}funcCreate()*SomeType{return&SomeType{}}funcmain(){a:=Create()fmt.Println(a.thingThatNeedsSetup)}main_test.gopackagemainimport("testing")funcTestCreate(t*test

json - 如何在 REST 端点中将结构作为有效 JSON 返回?

我正在从API获取一些数据,我想在我的Go应用程序的REST端点中提供这些数据。结构是这样的:typeStockstruct{Stockstring`json:"message_id,omitempty"`StockDatamap[string]interface{}`json:"status,omitempty"`}//varStockDataMapStock如果在控制台中打印,它看起来就像它应该的那样。我的Controller是这样的:packagelibimport("net/http""log""encoding/json")funcreturnStocksFromMemory

go - golang中值类型/指针类型的区别

typeTstruct{Namestring}func(tT)M1(){t.Name="name1"}func(t*T)M2(){t.Name="name2"}typeintfinterface{M1()M2()}funcmain(){vart1T=T{"t1"}t1.M1()t1.M2()vart2intf=t1t2.M1()t2.M2()}为什么当我使用vartfintf=&t1时,它是正确的但是当我使用vartfintf=&t1时,它是不正确的两种表示有什么区别吗? 最佳答案 whenIusevartfintf=&t1,It'